Next: Paren List Symbols, Previous: Brace List Symbols, Up: Syntactic Symbols [Contents][Index]
External language definition blocks also have their own syntactic symbols. In this example:
1: extern "C"
2: {
3: int thing_one( int );
4: int thing_two( double );
5: }
line 2 is given the extern-lang-open syntax,
while line 5 is given the extern-lang-close syntax.
The analysis for line 3 yields:
((inextern-lang) (topmost-intro 14))
where inextern-lang is a modifier similar in
purpose to inclass.
There are various other top level blocks like
extern, and they are all treated in the same way
except that the symbols are named after the keyword that
introduces the block. E.g., C++ namespace blocks get the three
symbols namespace-open, namespace-close
and innamespace. The currently recognized top level
blocks are:
extern-lang-open,
extern-lang-close, inextern-langextern blocks in C and C++.38
namespace-open, namespace-close,
innamespacenamespace blocks in C++.
module-open, module-close,
inmodulemodule blocks in CORBA IDL.
composition-open,
composition-close, incompositioncomposition blocks in CORBA CIDL.
These should logically be named extern-open,
extern-close and inextern, but that
isn’t the case for historical reasons.